home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / coding / dsp / aib2xmpl.exe / ADDA_C.ASM < prev    next >
Assembly Source File  |  1991-08-02  |  7KB  |  122 lines

  1. ;**************************************************************
  2. ;  
  3. ;                 adda_c.asm
  4. ;  
  5. ;                 Jeffrey Schwartz
  6. ;  
  7. ;                 08-02-91
  8. ;  
  9. ;           (C) Texas Instruments Inc., 1992 
  10. ;  
  11. ;           Refer to the file 'license.txt' included with this 
  12. ;           this package for usage and license information. 
  13. ;  
  14. ;**************************************************************
  15. ******************************************************************************
  16. *                                                                            *
  17. *        TMS320C25 A/D TO D/A LOOPBACK TEST WITH C-CALLABLE FUNCTIONS        *
  18. *                                                                            *
  19. * AUTHOR: Jeffrey Schwartz                                                   *
  20. *         DSP Applications                                                   *
  21. *         Texas Instruments                                                  *
  22. *                                                                            *
  23. * THIS PROGRAM READS A VALUE FROM THE A/D AND WRITES IT BACK OUT TO THE D/A. *
  24. * SINCE THIS PROGRAM IS INTERRUPT DRIVEN, AN INTERRUPT IS CAUSED EVERY TIME  *
  25. * A NEW INPUT SAMPLE IS READY TO BE FED INTO THE LOOPBACK.  THE INTERRUPT    *
  26. * MASK REGISTER (IMR) IS MASKED TO ONLY ALLOW INT0.  THE IDLE INSTRUCTION IS *
  27. * USED TO ENABLE THIS INTERRUPT AND WAIT UNTIL IT IS ACTIVATED.              *
  28. *                                                                            *
  29. * IT IS ASSUMED THAT A 5 MHZ CRYSTAL IS BEING USED TO GENERATE THE SAMPLE    *
  30. * RATE OF THE AIB2.  THE SAMPLE RATE CLOCK IS AT PORT ADDRESS 3.  THE VALUE  *
  31. * THAT IS OUTPUT TO THIS CLOCK DETERMINES THE SAMPLE FREQUENCY OF THE AIB2   *
  32. * WITH THE FOLLOWING CONVERSION: SAMPLE FREQUENCY = (5 MHZ) / (65535 - VALUE)*
  33. * WHERE VALUE IS THE 16 BIT QUANTITY WRITTEN TO THE SAMPLE RATE CLOCK.       *
  34. *                                                                            *
  35. * SINCE THIS EXAMPLE INCLUDES ASSEMBLY AND C CODE, THE MAKEFILE MUST COMBINE *
  36. * THE TWO, AS IS DONE IN ADDAMAKE.MAK .  THE .CMD FILE MUST BE USED TO       *
  37. * ALLOCATE THE "ORG" AND "BODY" SECTIONS OF MEMORY.                          *
  38. *                                                                            *
  39. * WITHOUT PROPER SETTING OF THE JUMPERS, THE AIB2 MAY NOT WORK WITH THIS     *
  40. * PROGRAM.  THE PROPER SETTINGS ARE AS FOLLOWS:                              *
  41. *                                                                            *
  42. *                                                                            *
  43. *        AIB2 JUMPER SETTINGS                                                *
  44. * JUMPER   SETTING     JUMPER DESCRIPTION                                    *
  45. *   E1       OFF       ;MC/MP select A=MP(Vcc) B=MC(GND) >> WARNING! <<      *
  46. *   E2       A         ;A:INT0, B:INT1, C:INT2                               *
  47. *   E3      B-C        ;A:BIOZ, B:INT , C:Use C17 and AIC together           *
  48. *   E4       A         ;A:End of conversion, B:Sample rate clock             *
  49. *   E5       B         ;A:Bypass S/H, B:Use sample and hold                  *
  50. *   E6       B         ;A:20V range, B:10V range                             *
  51. *   E7       ON        ;ON:Connects analog and digital ground                *
  52. *   E8       A         ;A:A/D for input, B:Codec/AIC for input               *
  53. *   E9       B         ;A:Input anti-alias filter, B:Bypass anti-alias       *
  54. *  E10       OFF       ;ON:Connect Vcc to C10/15                             *
  55. *  E11       A         ;EPROM type select (see AIB manual)                   *
  56. *  E12       A         ;A:Start conv. on sample rate clk, B:start on A/D read*
  57. *  E13       A         ;EPROM type select (see AIB manual)                   *
  58. *  E14       OFF       ;If installed, supplies 8khz frame synch to CODEC     *
  59. *  E15       A         ;EPROM type select (see AIB manual)                   *
  60. *  E16       ON        ;If installed, supplies 2.048 Mhz clock to CODEC      *
  61. *  E17       OFF       ;ON: AIC in byte mode  OFF:AIC in word mode           *
  62. *  E18       OFF       ;ON: ties FSR & FSX together for CODEC operation      *
  63. *  E19       OFF       ;ON: ties FSR & FSX to C17 FSR                        *
  64. *  E20       B         ;A:select audio power amp  B:bypass amplifier         *
  65. *  E21       A or B    ;A:bypass smoothing filter for P2 output B: add filter*
  66. *  E22       A         ;A:16 bit DAC as P2 output B:CODEC/AIC as output      *
  67. *  E23       OFF       ;A:generate clock B:use emulator clock                *
  68. *  E24       OFF       ;ON:1 I/O wait state   OFF:No I/O wait state          *
  69. *  E25       OFF       ;ON:use program wait states OFF:No program wait states*
  70. *  E26       OFF       ;ON:2 program wait states OFF:0 or 1 prog wait states *
  71. *  E27       OFF       ;ON:2 I/O wait states OFF:1 or 2 I/O wait states      *
  72. *  E28       ON        ;ON:connects V+ to TB1  OFF:disconnects V+            *
  73. *  E29       ON        ;ON:connects V- to TB1  OFF:disconnects V-            *
  74. *  E30       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  75. *  E31       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  76. *  E32       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  77. *  E33       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  78. *  E34       OFF       ;ON:connects DX0 and DX1 of C17 (second serial port)  *
  79. *  E35       OFF       ;ON:connects DR0 and DR1 of C17 (second serial port)  *
  80. *                                                                            *
  81. *  NOTE THAT SOME OF THESE SETTINGS, SUCH AS THOSE FOR EPROM CONFIGURATION   *
  82. *  ARE UNNECESSARY FOR THIS APPLICATION.                                     *
  83. ******************************************************************************
  84.  
  85. IMR    .set    04h
  86.     .global _set_rate
  87.     .global _tcv_adda
  88.  
  89.  .sect "ORG"
  90. RESET   B    _tcv_adda                  ; SIMPLIFIED ISRS
  91.         B    RESET
  92.         B    RESET
  93.         B    RESET
  94.  .space 16*16
  95.         B    RESET
  96.         B    RESET
  97.         B    RESET
  98.         B    RESET
  99.  
  100.  
  101.  .sect  "BODY"
  102.  
  103. * WHEN ASSEMBLY FUNCTIONS ARE CALLED FROM C, ARP = 0                          *
  104.  
  105. _set_rate                         ; THE INITIAL UNDERSCORE ALLOWS C-CALLABILITY
  106.         SFSM
  107.         RTXM
  108.         SST     *-                ; SAVE ST0
  109.         LDPK    0
  110.         LACK    01h               ; SET INTERRUPT MASK REGISTER (IMR)
  111.         SACL    IMR               ; TO ENABLE INT0
  112.         OUT     *+, PA3           ; OUTPORT RateValue TO SAMPLE RATE CLOCK
  113.         LST     *
  114.         RET
  115.  
  116. _tcv_adda
  117.         IN      *, PA2            ; READ A/D
  118.         OUT     *, PA2            ; WRITE D/A
  119.         IDLE                      ; WAIT FOR NEXT SAMPLE
  120.         RET
  121.     .end
  122.